1. Related Applications
The present invention claims priority from U.S. Provisional Patent Application No. 60/197,490 entitled CONDUCTOR GATEWAY filed on Apr. 17, 2000.
2. Field of the Invention
The present invention relates, in general, to a system and method for managing user priority information, and, more particularly, to software, systems and methods for determining and updating user priority information using client stored information, a front-end, and a Hyper Text Transfer Protocol (HTTP) redirector server.
3. Relevant Background
Increasingly, business data processing systems, entertainment systems, and personal communications systems are implemented by computers across networks that are interconnected by internetworks (e.g., the Internet). The Internet is rapidly emerging as the preferred system for distributing and exchanging data. Data exchanges support applications including electronic commerce (e-commerce), broadcast and multicast messaging, videoconferencing, gaming, and the like.
The Internet is a collection of heterogeneous computers and networks coupled together by a web of interconnections using standardized communications protocols. The Internet is characterized by its vast reach as a result of its wide and increasing availability and easy access protocols. Unfortunately, the ubiquitous nature of the Internet results in variable bandwidth and quality of service between points. The latency and reliability of data transport is largely determined by the total amount of traffic on the Internet and so varies wildly seasonally and throughout the day.
Internet protocols, routing mechanisms and address discovery mechanisms do not discriminate between users. Data packets are passed between routers and switches that make up the Internet based on the hardware's instantaneous view of the best path between source and destination nodes specified in the packet. Because each packet may take a different path, the latency of a packet cannot be guaranteed and in practice varies significantly. Likewise, data packets are routed through the Internet without any prioritization.
Prioritization has not been an issue with conventional networks such as local area networks (LANs) and wide area networks (WANs) because the average latency of such networks has been sufficiently low and sufficiently uniform to provide acceptable performance. However, there is an increasing demand for network applications that cannot tolerate high and variable latency. This situation is complicated when the application is to be run over the Internet where latency and variability in latency are many times greater than in LAN and WAN environments.
A particular need exists in environments that involve multiple users accessing a network resource such as a web server. Examples include broadcast, multicast and videoconferences as well as most electronic commerce applications. In these applications it is important to maintain a reliable connection so that the server and clients remain synchronized and information is not lost.
Although the ability to prioritize traffic and improve quality of service is recognized, the deployed Internet infrastructure does not implement mechanisms to provide such services. Moreover, the distributed nature of the Internet results in a slow upgrade process to implement new functionality. Literally thousands of entities that control various infrastructure components must agree on standards and cooperatively replace equipment and software in a process that takes years and sometimes decades. Hence, there is a need for systems and methods that enable communications to be captured and routed through proprietary systems that enable prioritization while still taking advantage of the deployed Internet infrastructure.
Existing DNS system is a single-destination architecture designed to direct a user request to a particular server on the Internet as specified by a uniform resource locator (URL) in the request. The DNS system will continue to direct requests to the server specified by the URL regardless of that site's availability, ability to respond to the request, or of quality of service to the specified site. The conventional DNS system is static and cannot adapt to dynamic network conditions. A need exists for a system and method of dynamically redirecting requests to locations that can efficiently service those requests.
Effective prioritization and quality of service management benefits significantly from flexible exchange of state information between various entities and machines managing a particular Internet connection. State information refers to information that associates individual data packets with users or machines and with prior network activity, assigned priority information, service class levels, and the like. However, the Internet is essentially designed as a stateless interconnect mechanism to make the network more robust when faced with network failures and inconsistencies. Hence, Internet protocols and standards do not support, and actually make it difficult to share state information useful in providing enhanced services such as prioritization and quality of service management.
By way of distinction, user-level or application-level processes can readily exchange state information because these processes have control over creating and managing data structures needed to exchange such information. However, these processes must be specially programmed in client and server software to enable such behavior. Moreover, the mechanisms implemented by these processes cannot be readily interpreted by standard Internet infrastructure components. Therefore, behaviors such as prioritization and quality of service management are propagated through, but not implemented within the Internet infrastructure.
Internet standards implement a limited mechanism for the exchange of state information specified in RFC 2109 entitled HTTP STATE MANAGEMENT MECHANISM published by the Internet engineering task force in 1997. This standard specifies two HTTP headers called “set-cookie” and “cookie” that indicate an HTTP packet having state information contained in the payload portion. Browser software that recognizes these headers is enabled to extract the state information and save it in a local data structure referred to as a “cookie”. The standard requires that each cookie be saved with an indication of the domain for which the cookie is valid.
A client (e.g., browser software) only sends cookie information to servers having a domain matching the domain specified in the cookie. Standards also provide for subdomain cookies (e.g., a cookie set message sent by a subdomain server) that can be read by any server within the parent domain. By way of example, abc.xyz.com specifies a subdomain of xyz.com. A cookie can be set by abc.xyz.com that can be read by xyz.com, but cannot be read by, for example, xxx.com which is another domain. This architecture in combination with the single-destination nature of the DNS system prevents sharing of information in the form of cookies across domains.